package com.siao.starling.mvc.core
{
	
	/**
	 * 观察者接口
	 * @author SiaoLeon
	 */
	public interface IObserver
	{
		/**
		 * 此观察者对象
		 * @return
		 */
		function get object():Object;
		
		/**
		 * 此观察者的回调方法
		 * @return
		 */
		function get callback():Function;
		
		/**
		 * 此观察者的优先级
		 * @return
		 */
		function get priority():uint;
		
		/**
		 * 消息处理函数
		 * @param notice 消息对象
		 */
		function execute(notice:INotice):void;
		
		/**
		 * 比较两个观察者是否一致
		 * @param observer 观察者对象
		 * @return
		 */
		function equals(observer:IObserver):Boolean;
	
	}
}
